leetcodeJS

Personal solution for leetcode problem using Javascript

View on GitHub

Problem

You are given a 0-indexed array words consisting of distinct strings.

The string words[i] can be paired with the string words[j] if:

The string words[i] is equal to the reversed string of words[j]. 0 <= i < j < words.length.

Return the maximum number of pairs that can be formed from the array words.

Note that each string can belong in at most one pair.

Example 1:

Input: words = [“cd”,”ac”,”dc”,”ca”,”zz”] Output: 2 Explanation: In this example, we can form 2 pair of strings in the following way:

Example 2:

Input: words = [“ab”,”ba”,”cc”] Output: 1 Explanation: In this example, we can form 1 pair of strings in the following way:

Example 3:

Input: words = [“aa”,”ab”] Output: 0 Explanation: In this example, we are unable to form any pair of strings.

Constraints:

1 <= words.length <= 50 words[i].length == 2 words consists of distinct strings. words[i] contains only lowercase English letters.

Pre analysis

will keep a hash of reversed string against their index. Iterating over the list, will check if reversed string is present in hash and index shouldnt match current item’s index, if yes, will increment the count. Will return the count at the end/2.